#include<iostream>
using namespace std;

//class Func1
//{
//public:
//	void f()
//	{
//		int a = 1;
//	}
//
//private:
//	int _a;
//	char _b;
//};
//
//class Func2
//{
//public:
//	void f1()
//	{
//		int c=1;
//	}
//
//private:
//	char _b;
//	int _a;
//};
//
//class Func3
//{
//public:
//	void f()
//	{
//		int a = 10;
//	}
//
//private:
//	
//	int _a;
//};
//
//
//
//int main()
//{
//	Func3 a;
//	cout << sizeof(Func1) << endl;
//	cout << sizeof(Func2) << endl;
//	cout << sizeof(Func3) << endl;
//	cout << sizeof(a) << endl;
//	return 0;
//}


//class Func
//{
//public:
//	void f()
//	{
//		int a = 10;
//	}
//
//};
//
//int main()
//{
//	Func f1;
//	Func f2;
//	cout << &f1 << endl;
//	cout << &f2 << endl;
//	return 0;
//}

//class Data
//{
//public:
//	void Print(int year=2023,int month=3,int day=29)
//	{
//		cout <<year << month <<day<< endl;
//	}
//private:
//	int _year;
//	int _month;
//	int _day;
//};
//
//int main()
//{
//	Data f1;
//	Data f2;
//	f1.Print(2022,2,2);
//	f2.Print();
//	return 0;
//}
//#include<stdbool.h>
//typedef int StackTypeData;
//class Stack
//{
//public:
//	Stack(int capacity=4)
//	{
//		cout << "Stack" << endl;
//		a = (int*)malloc(sizeof(int) * capacity);
//		if (a == nullptr)
//		{
//			perror("malloc fail");
//			return;
//		}
//		capacity = capacity;
//		size = 0;
//	}
	/*void Init(int Defaultcapacity)
	{
		a = (int*)malloc(sizeof(int) * Defaultcapacity);
		if (a == nullptr)
		{
			perror("malloc fail");
			return;
		}
		capacity = Defaultcapacity;
		size = 0;

	}*/

//	void Push(StackTypeData x)
//	{
//		a[size++] = x;
//	}
//
//	StackTypeData Top()
//	{
//		return a[size-1];
//	}
//
//	bool empty()
//	{
//		return size == 0;
//	}
//
//	int Size()
//	{
//		return size;
//	}
//	~Stack()
//	{
//		cout << "~Stack" << endl;
//		free(a);
//		a = nullptr;
//		size = capacity = 0;
//	}
//	/*void Destory()
//	{
//		free(a);
//		a = nullptr;
//		size=capacity = 0;
//	}*/
//
//	void Pop()
//	{
//		size--;
//	}
//
//private:
//	void CheckCapacity()
//	{
//		if (size == capacity)
//		{
//			int newcapacity = capacity * 2;
//			StackTypeData* newa = (StackTypeData*)realloc(a, sizeof(StackTypeData) * 2);
//			if (newa == nullptr)
//			{
//				perror("realloc fail");
//				return;
//			}
//			a = newa;
//			capacity = newcapacity;
//		}
//	}
//private:
//	int* a;
//	int size;
//	int capacity;
//};
//
//int main()
//{
//	Stack st;
//	//st.Init(4);
//	st.Push(1);
//	st.Push(2);
//	cout << st.Top() << endl;
//	//st.Destory();
//
//	return 0;
//}

class Data
{
public:
	/*Data()
	{
		_year = 1;
		_month = 1;
		_day = 1;
	}*/
	Data(int year=1,int month=1,int day=1)
	{
		_year = year;
		_month = month;
		_day = day;
	}
	void Print()
	{
		cout << _year << _month << _day << endl;
	}
private:
	int _year;
	int _month;
	int _day;
};

int main()
{
	Data d1;
	Data d2(2022, 2, 23);
	d1.Print();
	return 0;
}

